﻿using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using ot;
using System.Data.SqlClient;
using System.Data;

/// <summary>
/// Descripción breve de CConsultaEstadoOt
/// </summary>

namespace consultasSql
{
    public class CConsultaEstadoOt
    {
        /*UPDATE*/
        public bool update(CEstadoOt objeto)
        {
            bool bandera = false;

            string consulta = "IF NOT EXISTS (SELECT * FROM EstadosOT WHERE IdOtCab = @IdOtCab) BEGIN INSERT EstadosOT (IdOtCab) VALUES (@IdOtCab) END            UPDATE EstadosOT SET OrdenTrabajo = ISNULL(@OrdenTrabajo,OrdenTrabajo), InsumosAsociados = ISNULL(@InsumosAsociados,InsumosAsociados), Transporte = ISNULL(@Transporte,Transporte), RemitoGenerado = ISNULL(@RemitoGenerado,RemitoGenerado), NroRemitoAsignado = ISNULL(@NroRemitoAsignado,NroRemitoAsignado), RequisicionOc = ISNULL(@RequisicionOc,RequisicionOc), FacturaAsignada = ISNULL(@FacturaAsignada,FacturaAsignada), ElementosDesvinculados = ISNULL(@ElementosDesvinculados,ElementosDesvinculados), Anulada = ISNULL(@Anulada,Anulada) WHERE IdOtCab = @IdOtCab";

            using (SqlConnection objConexion = new SqlConnection(CCadenaConexionSql.cadConexion()))
            {
                using (SqlCommand command = new SqlCommand())
                {
                    if (objConexion.State == ConnectionState.Closed)
                    { objConexion.Open(); }

                    command.CommandType = CommandType.Text;
                    command.CommandText = consulta;

                    command.Parameters.Clear();



                    command.Parameters.AddWithValue("@IdOtCab", objeto.IdOtCab);


                    if (objeto.OrdenTrabajo)
                    {
                        command.Parameters.AddWithValue("@OrdenTrabajo", objeto.OrdenTrabajo);
                    }
                    else
                    {
                        command.Parameters.AddWithValue("@OrdenTrabajo", DBNull.Value);
                    }

                    if (objeto.InsumosAsociados)
                    {
                        command.Parameters.AddWithValue("@InsumosAsociados", objeto.InsumosAsociados);
                    }
                    else
                    {
                        command.Parameters.AddWithValue("@InsumosAsociados", DBNull.Value);
                    }

                    if (objeto.Transporte)
                    {
                        command.Parameters.AddWithValue("@Transporte", objeto.Transporte);
                    }
                    else
                    {
                        command.Parameters.AddWithValue("@Transporte", DBNull.Value);
                    }

                    if (objeto.RemitoGenerado)
                    {
                        command.Parameters.AddWithValue("@RemitoGenerado", objeto.RemitoGenerado);
                    }
                    else
                    {
                        command.Parameters.AddWithValue("@RemitoGenerado", DBNull.Value);
                    }

                    if (objeto.NroRemitoAsignado)
                    {
                        command.Parameters.AddWithValue("@NroRemitoAsignado", objeto.NroRemitoAsignado);
                    }
                    else
                    {
                        command.Parameters.AddWithValue("@NroRemitoAsignado", DBNull.Value);
                    }

                    if (objeto.RequisicionOc)
                    {
                        command.Parameters.AddWithValue("@RequisicionOc", objeto.RequisicionOc);
                    }
                    else
                    {
                        command.Parameters.AddWithValue("@RequisicionOc", DBNull.Value);
                    }

                    if (objeto.FacturaAsignada)
                    {
                        command.Parameters.AddWithValue("@FacturaAsignada", objeto.FacturaAsignada);
                    }
                    else
                    {
                        command.Parameters.AddWithValue("@FacturaAsignada", DBNull.Value);
                    }

                    if (objeto.ElementosDesvinculados)
                    {
                        command.Parameters.AddWithValue("@ElementosDesvinculados", objeto.ElementosDesvinculados);
                    }
                    else
                    {
                        command.Parameters.AddWithValue("@ElementosDesvinculados", DBNull.Value);
                    }

                    if (objeto.Anulada)
                    {
                        command.Parameters.AddWithValue("@Anulada", objeto.Anulada);
                    }
                    else
                    {
                        command.Parameters.AddWithValue("@Anulada", DBNull.Value);
                    }

                    command.Connection = objConexion;

                    try
                    {
                        command.ExecuteNonQuery();
                        bandera = true;
                    }
                    catch
                    {
                        bandera = false;
                    }

                    if (objConexion.State == ConnectionState.Open)
                    { objConexion.Close(); }
                }
            }

            return bandera;
        }
    }
}